package com.silence.gmall.template;

import com.silence.gmall.common.vo.req.ChunkUploadReqVo;
import com.silence.gmall.common.vo.req.MergeChunksReqVo;
import com.silence.gmall.common.vo.res.ChunkUploadResVo;
import com.silence.gmall.common.vo.res.FileUploadResVo;

/**
 * 分片上传模板接口
 */
public interface ChunkUploadTemplate {
    
    /**
     * 检查文件是否已存在（秒传功能）
     */
    FileUploadResVo checkFileExists(String fileIdentifier, String fileName);
    
    /**
     * 检查分片上传状态
     */
    ChunkUploadResVo checkChunkStatus(String fileIdentifier);
    
    /**
     * 上传分片
     */
    ChunkUploadResVo uploadChunk(ChunkUploadReqVo request);
    
    /**
     * 合并分片
     */
    FileUploadResVo mergeChunks(MergeChunksReqVo request);
    
    /**
     * 取消上传（清理临时文件）
     */
    void cancelUpload(String fileIdentifier);
}